
#ifndef SEPARADOR_H_
#define SEPARADOR_H_

#include <fstream>
#include <sstream>
#include <iostream>

/*
 * Manipuladores de streams, pensados para usarse de la forma
 *
 * unStream << ... << sep << ... ;
 * unStream >> ... >> sep >> ... ;
 *
 * Ponen en el stream el separador ";" en el caso de un stream de salida ( << ).
 * En el caso de un stream de entrada ( >> ), lee un caracter y si este no coincide
 * con el separador ";" setea el flag failbit en el stream.
 */
std::ostream& sep(std::ostream &out) {
   out << ';';
   return out;
}

std::istream& sep(std::istream &in) {
   char lectura = 0;
   in >> lectura;
   if(lectura != ';' ) in.setstate(std::ios::failbit);
   return in;
}

      
#endif
